/*                                         请你看双子座流星雨！
        ⛦-----------      ⛦---------------      ⛦-----         ⛦----------------
⛦-----------   ⛦-----------    ⛦---------------------    ⛦-----------   许愿：“四海荡平”
       ⛦-----------       ⛦-----------        ⛦-----------        ⛦-----------  ⛦-----------
*/

let data = {
    SMS_type:null, //消息类型数组
    SMS_type_selectedID:null, //选择的消息类型ID
    tableData: null, //表单数据
    miniTableData:[],//分页时的表单数据
    pageNums:1,//当前页面
    keyWord:"",//搜索关键字
    sendingTime:"",//发送时间
    div1_Visible:false,//div1是否可见
    multipleSelection: [],//多重选择框
    selectedID:[],//被多选框选中的ID
    is_deleted:null,//是否被删除
    div2_Visible:false,//div2是否可见
    div3_Visible:false,
    taskTableData:null,//根据任务ID查询短信发送记录
    dataBowl:null,//用来装选中ID的容器
    div4_Visible:false,//修改对话框不可见
    selectedData: {},//修改时查询到的数据
    taskNums:null,//表单数据条数



    SMS_sign :null,
    SMS_sign_selectedID:null,
    SMS_archetype:null,
    SMS_archetype_selectedID:null,
    archetype_content:null,
    TaskName:null,
    TaskDesc:null,
    time:null,
    send_type:null,
    school_name_list:null,
    selected_schoolID:null,
    send_to_all:false,//true or false


};

let main_div = new Vue({

    el:"#alice",
    data:data,
    methods:{
        re_load: function () {
            //定义表格数据变量
            let params =new FormData();
            params.append("SMS_type_selectedID",this.SMS_type_selectedID);
            params.append("keyWord",this.keyWord);
            params.append("sendingTime",this.sendingTime);

            //将数据发送给后端服务器的函数
            axios.post('/ep/sms/alltask', params)
                .then(response => {
                    //解决异步请求报空的问题
                    data.tableData = response.data;
                    console.log("当前的页数： "+data.pageNums);
                    data.taskNums = data.tableData.length;
                    //分页装载数据
                    data.miniTableData = [];//清空
                    for (let i=(data.pageNums-1)*10;i<data.pageNums*10;i++){
                        if(data.tableData[i] != null){
                            data.miniTableData.push(data.tableData[i]);
                        }
                    }
                })
                .catch(error => {
                    console.log(error);
                });



        },
        reset_search: function () {
            this.keyWord = "";
            this.sendingTime = "";
            this.SMS_type_selectedID = null;
            this.re_load();
        },
        del_selected: function () {

            //定义表格数据变量
            let params =new FormData();
            params.append("selectedID",data.selectedID);

            //将数据发送给后端服务器的函数
            axios.post('/ep/sms/delete', params)
                .then(response => {
                    data.is_deleted = response.data;
                    this.re_load();//请求成功才能，重新加载数据。顺序很重要！！！！
                })
                .catch(error => {
                    console.log(error);
                });
            console.log(data.selectedID);
            console.log(data.is_deleted);

            //解决异步请求数据刷新过快的问题
            setTimeout(function () {
                data.div1_Visible = false;
            },1000);



        },//时间格式化
        formatDate:function(row, column) {
            let data = row[column.property]
            let dt = new Date(data)
            return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate()+ ' ' + dt.getHours()+ ':' + dt.getMinutes()+ ':' + dt.getSeconds()
        },
        handleClose: function () {
            //在关闭页面前，设置对话框不可见
            this.div1_Visible = false;
            this.div3_Visible = false;
        },
        handleSelectionChange: function (val) {
            this.multipleSelection = val;
            this.selectedID = [];//装ID的数组重置为空
            this.multipleSelection.forEach(e=>this.selectedID.push(e.id));//遍历更新装ID的数组
            console.log(this.selectedID);
        },
        showDetalsOfTask: function(){

            console.log(data.selectedID);
            this.selectRecordByTaskID();
            data.div3_Visible = true;

        },selectRecordByTaskID: function(){

            //定义表格数据变量
            let params =new FormData();
            params.append("taskID",data.selectedID);

            //将数据发送给后端服务器的函数
            axios.post('/ep/sms/selectRecordByTaskID', params)
                .then(response => {
                    data.taskTableData = response.data;
                    console.log(data.taskTableData);
                })
                .catch(error => {
                    console.log(error);
                });
        },updateSelected: function(){
            if((data.selectedID == null)||(data.selectedID == "")){
                return;
            }

            let id = data.selectedID[0];
            console.log("要修改数据的任务的ID： "+id);
            data.div4_Visible = true;

            //定义表格数据变量
            let params =new FormData();
            params.append("ID",id);


            //将数据发送给后端服务器的函数
            axios.post('/ep/sms/alltask', params)
                .then(response => {
                    data.selectedData = response.data[0];
                    console.log(data.selectedData);
                })
                .catch(error => {
                    console.log(error);
                });

            // //data.div4_Visible = false;
            // this.re_load();//然后将绑定的数据重置
            // data.selected_schoolID =null;//群发人群
            // data.TaskName = null;//任务名称
            // data.TaskDesc = null;//任务描述
            // data.SMS_type_selectedID =null;//消息类型
            // data.SMS_sign_selectedID = null;//短信签名
            // data.SMS_archetype_selectedID =null;//短信模板
            // data.archetype_content = null;//模板内容
            // data.send_type = null;//发送时间
            // data.time = null;//发送时间值


        },updateSelectedData:function(){

            //定义表格数据变量
            let params =new FormData();
            params.append("id",data.selectedID[0]);
            params.append("nameValue",data.selectedData.nameValue);
            params.append("descValue",data.selectedData.descValue);
            params.append("SchoolID",data.selectedData.schoolID);
            params.append("msgTypeID",data.selectedData.msgTypeID);

            //将数据发送给后端服务器的函数
            axios.post('/ep/sms/updateTask', params)
                .then(response => {
                    console.log(response);
                    this.re_load();
                })
                .catch(error => {
                    console.log(error);
                });

            //解决异步请求数据刷新过快的问题
            setTimeout(function () {
                data.div4_Visible = false;
            },100);


        },prePage: function(){
            data.miniTableData = [];//清空
            data.pageNums = data.pageNums - 1;
            console.log("当前的页数： "+data.pageNums);
            //分页装载数据
            for (let i=(data.pageNums-1)*10;i<data.pageNums*10;i++){
                if(data.tableData[i] != null){
                    data.miniTableData.push(data.tableData[i]);
                }
            }


        },nextPage:function(){
            data.miniTableData = [];//清空
            data.pageNums = data.pageNums + 1;
            console.log("当前的页数： "+data.pageNums);
            //分页装载数据
            for (let i=(data.pageNums-1)*10;i<data.pageNums*10;i++){
                if(data.tableData[i] != null){
                    data.miniTableData.push(data.tableData[i]);
                }
            }


        },






        get_sms_signID: function(id){
            console.log("短信签名的id: "+id);
        },
        get_sms_archetypeID: function(id){
            console.log("短信模板的id: "+id);
            let obj = this.SMS_archetype.find((item)=>{  //这里的ClaOptions就是上面遍历的数据源
                return item.id === id;  //筛选出匹配数据，这里的value是你遍历数组每一项的value，如果没有对后台返回的数据做处理，一般为id
            });
            console.log(obj.content);//  这里的label就是对应label的
            this.archetype_content = obj.content;

        },
        get_sms_typeID: function(id){
            console.log("消息类型的id: "+id);
        },
        get_selected_schoolID: function(id){
            console.log("被选择群发学校的的id: "+id);
        },sendToServer: function () {

            let sendingTime = null;
            if(this.send_type == "1"){
                sendingTime = "立即发送";
            }
            if(this.send_type == "2"){
                sendingTime = this.time;
            }

            let params =new FormData();
            params.append("send_to_all",this.send_to_all);
            params.append("selected_schoolID",this.selected_schoolID);
            params.append("TaskName",this.TaskName);
            params.append("TaskDesc",this.TaskDesc);
            params.append("fkMsgTypeId",this.SMS_type_selectedID);
            params.append("fkSmsSignId",this.SMS_sign_selectedID);
            params.append("fkSmsArchetypeId",this.SMS_archetype_selectedID);
            params.append("sendingTime",sendingTime);


            //将数据发送给后端服务器的函数
            axios.post('/ep/sms/insert', params)
                .then(response => {
                    console.log(response);
                    this.div2_Visible = false;
                    this.reset_search();
                    this.re_load();//然后将绑定的数据重置
                    this.selected_schoolID =null;//群发人群
                    this.TaskName = null;//任务名称
                    this.TaskDesc = null;//任务描述
                    this.SMS_type_selectedID =null;//消息类型
                    this.SMS_sign_selectedID = null;//短信签名
                    this.SMS_archetype_selectedID =null;//短信模板
                    this.archetype_content = null;//模板内容
                    this.send_type = null;//发送时间
                    this.time = null;//发送时间值

                })
                .catch(error => {
                    console.log(error);
                });
        }




    }


});

//-------------------------------------------分割线-------------------------------------------
//页面加载完成后，即向后端发送请求，获取json格式的字符串数据

window.onload=function(){
    getSMSType();//从数据库获取信息类
    getAllTask();//从数据库获取表单数据
    getSMSSign();//从数据库获取短信签名
    getSMSArchetype();//从数据库获取短信模板
    getSchoolNameList();//从数据库获取学校名列表




}



//-------------------------------------------分割线-------------------------------------------
//页面加载完成后要执行的函数

//从数据库获取信息类型
let getSMSType =  ()=> {
    axios.get('/ep/sms/type')
        .then(response => {
            data.SMS_type = response.data;
        })
        .catch(function (error) {
            console.log(error);
        });
}


//从数据库获取任务数据(表单数据)
let getAllTask =  ()=> {
    axios.get('/ep/sms/alltask')
        .then(response => {
            data.tableData = response.data;
            data.taskNums = data.tableData.length;
            console.log("数据条数： "+data.taskNums);

            //分页装载数据
            for (let i=(data.pageNums-1)*10;i<data.pageNums*10;i++){
                if(data.tableData[i] != null){
                    data.miniTableData.push(data.tableData[i]);
                }
            }

        })
        .catch(function (error) {
            console.log(error);
        });
}

//从数据库获取短信签名
let getSMSSign =  ()=> {
    axios.get('/ep/sms/sign')
        .then(response => {
            data.SMS_sign = response.data;
        })
        .catch(function (error) {
            console.log(error);
        });
}

//从数据库获取短信模板
let getSMSArchetype =  ()=> {
    axios.get('/ep/sms/archetype')
        .then(response => {
            data.SMS_archetype = response.data;
        })
        .catch(function (error) {
            console.log(error);
        });
}




//从数据库获取学校名列表
let getSchoolNameList =  ()=> {
    axios.get('/ep/student/school')
        .then(response => {
            data.school_name_list = response.data;
        })
        .catch(function (error) {
            console.log(error);
        });
}





//-------------------------------------------分割线-------------------------------------------
//监听到【点击事件】要执行的函数（点击按钮要执行的函数）




//测试data数据的按钮
let mydata = ()=>{
    //console.log("消息类型数组 :"+data.SMS_type);
    console.log("选择的消息类型ID :"+data.SMS_type_selectedID);
    //console.log("表单数据 :"+data.tableData);
    console.log("搜索关键字 :"+data.keyWord);
    console.log("发送时间 :"+data.sendingTime);



}





